package com.example.vendingmachine.entity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 订单实体类
 */
@Data
@EqualsAndHashCode(callSuper = true)
public class Order extends BaseEntity {
    /**
     * 订单编号
     */
    private String orderNo;

    /**
     * 货道ID
     */
    private Long slotId;

    /**
     * 货道编号(非数据库字段)
     */
    private String slotCode;

    /**
     * 设备ID(非数据库字段)
     */
    private Long machineId;

    /**
     * 设备名称(非数据库字段)
     */
    private String machineName;

    /**
     * 点位ID(非数据库字段)
     */
    private Long pointId;

    /**
     * 点位名称(非数据库字段)
     */
    private String pointName;

    /**
     * 商品ID
     */
    private Long productId;

    /**
     * 商品名称(非数据库字段)
     */
    private String productName;

    /**
     * 商品图片(非数据库字段)
     */
    private String productImageUrl;

    /**
     * 购买数量
     */
    private Integer quantity;

    /**
     * 商品单价
     */
    private BigDecimal price;

    /**
     * 订单金额
     */
    private BigDecimal amount;

    /**
     * 支付方式
     * WECHAT: 微信支付
     * ALIPAY: 支付宝
     */
    private String payType;

    /**
     * 支付时间
     */
    private LocalDateTime payTime;

    /**
     * 订单状态
     * PENDING: 待支付
     * PAID: 已支付
     * COMPLETED: 已完成
     * CANCELLED: 已取消
     * REFUNDED: 已退款
     */
    private String status;
} 